// Copyright (c) Appeon. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

using System.Linq;

namespace SnapObjects.Data
{
    internal class OrderElement : SqlElement
    {
        public OrderElement(string[] orderExtensions, bool isAsc) : base("")
        {
            this.Expressions = orderExtensions;
            this.IsAsc = isAsc;
        }

        private OrderElement(string name) : base(name) { }

        public override SqlElementType ElementType => SqlElementType.OrderBy;

        public string[] Expressions { get; private set; }

        public bool IsAsc { get; private set; }

        public override SqlElement Clone()
        {
            return new OrderElement(this.ElementName)
            {
                Expressions = this.Expressions.ToArray(),
                IsAsc = this.IsAsc
            };
        }
    }
}
